home *** CD-ROM | disk | FTP | other *** search
- package koala.dynamicjava.classinfo;
-
- import java.lang.reflect.Array;
- import java.lang.reflect.Constructor;
- import java.lang.reflect.Field;
- import java.lang.reflect.Method;
-
- public class JavaClassInfo implements ClassInfo {
- public static final JavaClassInfo BOOLEAN;
- public static final JavaClassInfo INT;
- public static final JavaClassInfo LONG;
- public static final JavaClassInfo FLOAT;
- public static final JavaClassInfo DOUBLE;
- public static final JavaClassInfo STRING;
- public static final JavaClassInfo CLASS;
- private Class javaClass;
- // $FF: synthetic field
- private static Class class$Ljava$lang$String;
- // $FF: synthetic field
- private static Class class$Ljava$lang$Class;
-
- public Class getJavaClass() {
- return this.javaClass;
- }
-
- public boolean isCompilable() {
- return false;
- }
-
- public void setCompilable(boolean var1) {
- throw new IllegalStateException();
- }
-
- public ClassInfo getDeclaringClass() {
- Class var1 = this.javaClass.getDeclaringClass();
- return var1 == null ? null : new JavaClassInfo(var1);
- }
-
- public ClassInfo getAnonymousDeclaringClass() {
- return null;
- }
-
- public int getModifiers() {
- return this.javaClass.getModifiers();
- }
-
- public String getName() {
- return this.javaClass.getName();
- }
-
- public ClassInfo getSuperclass() {
- Class var1 = this.javaClass.getSuperclass();
- return var1 == null ? null : new JavaClassInfo(var1);
- }
-
- public ClassInfo[] getInterfaces() {
- Class[] var1 = this.javaClass.getInterfaces();
- ClassInfo[] var2 = new ClassInfo[var1.length];
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- var2[var3] = new JavaClassInfo(var1[var3]);
- }
-
- return var2;
- }
-
- public FieldInfo[] getFields() {
- Field[] var1 = this.javaClass.getDeclaredFields();
- FieldInfo[] var2 = new FieldInfo[var1.length];
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- var2[var3] = new JavaFieldInfo(var1[var3]);
- }
-
- return var2;
- }
-
- public ConstructorInfo[] getConstructors() {
- Constructor[] var1 = this.javaClass.getDeclaredConstructors();
- ConstructorInfo[] var2 = new ConstructorInfo[var1.length];
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- var2[var3] = new JavaConstructorInfo(var1[var3]);
- }
-
- return var2;
- }
-
- public MethodInfo[] getMethods() {
- Method[] var1 = this.javaClass.getDeclaredMethods();
- MethodInfo[] var2 = new MethodInfo[var1.length];
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- var2[var3] = new JavaMethodInfo(var1[var3]);
- }
-
- return var2;
- }
-
- public ClassInfo[] getDeclaredClasses() {
- Class[] var1 = this.javaClass.getDeclaredClasses();
- ClassInfo[] var2 = new ClassInfo[var1.length];
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- var2[var3] = new JavaClassInfo(var1[var3]);
- }
-
- return var2;
- }
-
- public ClassInfo getArrayType() {
- return new JavaClassInfo(this);
- }
-
- public boolean equals(Object var1) {
- return var1 != null && var1 instanceof ClassInfo ? this.javaClass.getName().equals(((ClassInfo)var1).getName()) : false;
- }
-
- public boolean isInterface() {
- return this.javaClass.isInterface();
- }
-
- public boolean isArray() {
- return this.javaClass.isArray();
- }
-
- public boolean isPrimitive() {
- return this.javaClass.isPrimitive();
- }
-
- public ClassInfo getComponentType() {
- if (!this.isArray()) {
- throw new IllegalStateException();
- } else {
- return new JavaClassInfo(this.javaClass.getComponentType());
- }
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- public JavaClassInfo(Class var1) {
- if (var1 == null) {
- throw new IllegalArgumentException("c == null");
- } else {
- this.javaClass = var1;
- }
- }
-
- public JavaClassInfo(JavaClassInfo var1) {
- this.javaClass = Array.newInstance(var1.javaClass, 0).getClass();
- }
-
- static {
- BOOLEAN = new JavaClassInfo(Boolean.TYPE);
- INT = new JavaClassInfo(Integer.TYPE);
- LONG = new JavaClassInfo(Long.TYPE);
- FLOAT = new JavaClassInfo(Float.TYPE);
- DOUBLE = new JavaClassInfo(Double.TYPE);
- STRING = new JavaClassInfo(class$Ljava$lang$String != null ? class$Ljava$lang$String : (class$Ljava$lang$String = class$("java.lang.String")));
- CLASS = new JavaClassInfo(class$Ljava$lang$Class != null ? class$Ljava$lang$Class : (class$Ljava$lang$Class = class$("java.lang.Class")));
- }
- }
-